﻿// best_prime_couple.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;
bool isPrime(int num)
{
    if (num == 1) return false;
    if (num % 2 == 0) return num == 2;
    for (int i = 3; i * i <= num; i += 2)
    {
        if (num % i == 0) return false;
    }
    return true;
}

bool findPrimeCouple(int even_pos, 
    vector<bool>&used,
    vector<int>&matches, 
    vector<int>&odd_nums, vector<int>&even_nums
    )
{
    for (int odd_pos = 0; odd_pos < odd_nums.size(); odd_pos++)
    {
        if (!used[odd_pos] && isPrime(odd_nums[odd_pos] + even_nums[even_pos]))
        {
            used[odd_pos] = true;
            if (matches[odd_pos] == -1 || findPrimeCouple(matches[odd_pos], used, matches, odd_nums, even_nums))
            {
                matches[odd_pos] = even_pos;
                return true;
            }
        }
    }
    return false;
}

void solve()
{
    int total_count;
    cin >> total_count;

    vector<int>nums_input(total_count);
    for (int i = 0; i < total_count; i++)
    {
        cin >> nums_input[i];
    }

    vector<int>odd_nums;
    vector<int>even_nums;
    for (int i = 0; i < nums_input.size(); i++)
    {
        if (nums_input[i] % 2 == 0)
            even_nums.push_back(nums_input[i]);
        else
            odd_nums.push_back(nums_input[i]);
    }

    vector<bool>used(odd_nums.size(), false);
    vector<int>matches(odd_nums.size(), -1);
    int count = 0;
    for (int even_pos = 0; even_pos < even_nums.size(); even_pos++)
    {
        if (findPrimeCouple(even_pos, used, matches, odd_nums, even_nums))
            count++;
    }
    cout << count;
}

int main()
{
    //bool result = isPrime(11);
    //int even_pos = 0;
    
    //solve();
    string count_input;
    getline(cin, count_input);
    int total_count = stoi(count_input);

    vector<int>nums_input;
    string input;
    getline(cin, input);
    stringstream ssinput(input);
    string inputtmp;
    while (ssinput >> inputtmp)
        nums_input.push_back(stoi(inputtmp));

    for (int i = 0; i < nums_input.size(); i++)
        cout << nums_input[i];
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
